﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using RiadenieProjektov;
using System.Xml;
using System.Xml.Schema;
using System.IO;

namespace projekty2
{
    public partial class frmHlavny : Form
    {
        frmSpeedDial frmSpeedDial;
        #region properties
        private int aPozicia;
        public int pozicia
        {
            get { return aPozicia; }
            set { aPozicia = value; }
        }

        #endregion



        #region prihlasenie a pdhlasenie
        private void ZobrazPrihlasenie()
        {
            frmLogin frmLogin = new frmLogin(dsVsetko, uzivateliaTA);
            this.Hide();
            frmLogin.ShowDialog();

            if (frmLogin.Akcia == KAkcia.Koniec)
            {
                this.Close();
            }
            else if (frmLogin.Akcia == KAkcia.Prihlas)
            {
                this.pozicia = frmLogin.Pozicia;
                mnuMan.Hide();
                mnuTest.Hide();
                mnuProg.Hide();

                btnProjektyPridajChod.Enabled = false;
                btnProjektyUpravChod.Enabled = false;
                btnProjektyZmazChod.Enabled = false;
                btnProjektyUlohyChod.Enabled = false;
                btnProjektyExport.Enabled = false;
                btnProjektyDoXml.Enabled = false;
                btnProjektyNacitat.Enabled = false;

                btnUlohyPridatChod.Enabled = false;
                btnUlohyUpravitChod.Enabled = false;
                btnUlohyZmazatChod.Enabled = false;
                btnUlohyPraceChod.Enabled = false;
                btnUlohyTlacit.Enabled = false;
                btnUlohyProjektyChod.Enabled = false;
                btnUlohyExport.Enabled = false;
                btnUlohyDoXml.Enabled = false;
                btnUlohyNacitat.Enabled = false;

                btnPracePridatChod.Enabled = false;
                btnPraceUpravitChod.Enabled = false;
                btnPraceZmazatChod.Enabled = false;
                btnPraceUlohyChod.Enabled = false;
                btnPraceExport.Enabled = false;
                btnPraceDoXml.Enabled = false;
                btnPraceNacitat.Enabled = false;

                btnVyplatyPridatChod.Enabled = false;
                btnVyplatyUpravitChod.Enabled = false;
                btnVyplatyZmazatChod.Enabled = false;
                btnVyplatyExport.Enabled = false;
                btnVyplatyDoXml.Enabled = false;
                btnVyplatyNacitat.Enabled = false;

                btnZakazniciPridatChod.Enabled = false;
                btnZakazniciUpravitChod.Enabled = false;
                btnZakazniciZmazatChod.Enabled = false;
                btnZakazniciTlacit.Enabled = false;
                btnZakazniciExport.Enabled = false;
                btnZakazniciDoXml.Enabled = false;
                btnZakazniciNacitat.Enabled = false;

                btnUzivateliaPridatChod.Enabled = false;
                btnUzivateliaUpravitChod.Enabled = false;
                btnUzivateliaZmazatChod.Enabled = false;
                btnUzivateliaTlacit.Enabled = false;
                btnUzivateliaExport.Enabled = false;
                btnUzivateliaDoXml.Enabled = false;
                btnUzivateliaNacitat.Enabled = false;

                txtUlohyNazov.Enabled = false;
                txtUlohyMzdaNaHodinu.Enabled = false;
                txtUlohyPlanHodin.Enabled = false;
                txtUlohyPopis.Enabled = false;
                cbxUlohyVypracovatel.Enabled = false;
                cbxUlohyTester.Enabled = false;
                dtpUlohyPridana.Enabled = false;
                dtpUlohyTermin.Enabled = false;
                dtpUlohyOdovzdana.Enabled = false;
                dtpUlohySchvalena.Enabled = false;

                cbxPraceStav.Enabled = false;


                switch (this.pozicia)
                {
                    case 4: // projektovy manazer
                        mnuMan.Show();
                        lblPrihlaseny.Text = "Ste prihlásený ako projektový manažér.";
                        
                        btnProjektyPridajChod.Enabled = true;
                        btnProjektyUpravChod.Enabled = true;
                        btnProjektyZmazChod.Enabled = true;
                        btnProjektyUlohyChod.Enabled = true;
                        btnProjektyExport.Enabled = true;
                        btnProjektyDoXml.Enabled = true;
                        btnProjektyNacitat.Enabled = true;

                        btnUlohyPridatChod.Enabled = true;
                        btnUlohyUpravitChod.Enabled = true;
                        btnUlohyZmazatChod.Enabled = true;
                        btnUlohyPraceChod.Enabled = true;
                        btnUlohyTlacit.Enabled = true;
                        btnUlohyProjektyChod.Enabled = true;
                        btnUlohyExport.Enabled = true;
                        btnUlohyDoXml.Enabled = true;
                        btnUlohyNacitat.Enabled = true;

                        btnPracePridatChod.Enabled = true;
                        btnPraceUpravitChod.Enabled = true;
                        btnPraceZmazatChod.Enabled = true;
                        btnPraceUlohyChod.Enabled = true;
                        btnPraceExport.Enabled = true;
                        btnPraceDoXml.Enabled = true;
                        btnPraceNacitat.Enabled = true;

                        btnVyplatyPridatChod.Enabled = true;
                        btnVyplatyUpravitChod.Enabled = true;
                        btnVyplatyZmazatChod.Enabled = true;
                        btnVyplatyExport.Enabled = true;
                        btnVyplatyDoXml.Enabled = true;
                        btnVyplatyNacitat.Enabled = true;

                        btnZakazniciPridatChod.Enabled = true;
                        btnZakazniciUpravitChod.Enabled = true;
                        btnZakazniciZmazatChod.Enabled = true;
                        btnZakazniciTlacit.Enabled = true;
                        btnZakazniciExport.Enabled = true;
                        btnZakazniciDoXml.Enabled = true;
                        btnZakazniciNacitat.Enabled = true;

                        btnUzivateliaPridatChod.Enabled = true;
                        btnUzivateliaUpravitChod.Enabled = true;
                        btnUzivateliaZmazatChod.Enabled = true;
                        btnUzivateliaTlacit.Enabled = true;
                        btnUzivateliaExport.Enabled = true;
                        btnUzivateliaDoXml.Enabled = true;
                        btnUzivateliaNacitat.Enabled = true;

                        txtUlohyNazov.Enabled = true;
                        txtUlohyMzdaNaHodinu.Enabled = true;
                        txtUlohyPlanHodin.Enabled = true;
                        txtUlohyPopis.Enabled = true;
                        cbxUlohyVypracovatel.Enabled = true;
                        cbxUlohyTester.Enabled = true;
                        dtpUlohyPridana.Enabled = true;
                        dtpUlohyTermin.Enabled = true;
                        dtpUlohyOdovzdana.Enabled = true;
                        dtpUlohySchvalena.Enabled = true;

                        cbxPraceStav.Enabled = true;

                        break;
                    case 5: // programator
                        mnuProg.Show();
                        lblPrihlaseny.Text = "Ste prihlásený ako programátor.";

                        //btnProjektyPridajChod.Enabled = true;
                        //btnProjektyUpravChod.Enabled = true;
                        //btnProjektyZmazChod.Enabled = true;
                        btnProjektyUlohyChod.Enabled = true;
                        //btnProjektyExport.Enabled = true;
                        btnProjektyDoXml.Enabled = true;
                        //btnProjektyNacitat.Enabled = true;

                        //btnUlohyPridatChod.Enabled = true;
                        btnUlohyUpravitChod.Enabled = true;
                        //btnUlohyZmazatChod.Enabled = true;
                        btnUlohyPraceChod.Enabled = true;
                        btnUlohyTlacit.Enabled = true;
                        btnUlohyProjektyChod.Enabled = true;
                        //btnUlohyExport.Enabled = true;
                        btnUlohyDoXml.Enabled = true;
                        //btnUlohyNacitat.Enabled = true;

                        btnPracePridatChod.Enabled = true;
                        //btnPraceUpravitChod.Enabled = true;
                        //btnPraceZmazatChod.Enabled = true;
                        btnPraceUlohyChod.Enabled = true;
                        //btnPraceExport.Enabled = true;
                        btnPraceDoXml.Enabled = true;
                        //btnPraceNacitat.Enabled = true;

                        //btnVyplatyPridatChod.Enabled = true;
                        //btnVyplatyUpravitChod.Enabled = true;
                        //btnVyplatyZmazatChod.Enabled = true;
                        //btnVyplatyExport.Enabled = true;
                        //btnVyplatyDoXml.Enabled = true;
                        //btnVyplatyNacitat.Enabled = true;

                        //btnZakazniciPridatChod.Enabled = true;
                        //btnZakazniciUpravitChod.Enabled = true;
                        //btnZakazniciZmazatChod.Enabled = true;
                        //btnZakazniciTlacit.Enabled = true;
                        //btnZakazniciExport.Enabled = true;
                        //btnZakazniciDoXml.Enabled = true;
                        //btnZakazniciNacitat.Enabled = true;

                        //btnUzivateliaPridatChod.Enabled = true;
                        //btnUzivateliaUpravitChod.Enabled = true;
                        //btnUzivateliaZmazatChod.Enabled = true;
                        //btnUzivateliaTlacit.Enabled = true;
                        //btnUzivateliaExport.Enabled = true;
                        //btnUzivateliaDoXml.Enabled = true;
                        //btnUzivateliaNacitat.Enabled = true;

                        //txtUlohyNazov.Enabled = true;
                        //txtUlohyMzdaNaHodinu.Enabled = true;
                        //txtUlohyPlanHodin.Enabled = true;
                        //txtUlohyPopis.Enabled = true;
                        //cbxUlohyVypracovatel.Enabled = true;
                        //cbxUlohyTester.Enabled = true;
                        //dtpUlohyPridana.Enabled = true;
                        //dtpUlohyTermin.Enabled = true;
                        //dtpUlohyOdovzdana.Enabled = true;
                        //dtpUlohySchvalena.Enabled = true;

                        cbxPraceStav.Enabled = false;

                        break;
                    case 6: //tester
                        mnuTest.Show();
                        lblPrihlaseny.Text = "Ste prihlásený ako tester.";
                        break;
                    default:
                        Console.WriteLine("Nezname ID pozicie!");
                        break;
                }
                this.Show();
                this.pracaStatusTA.Fill(this.dsVsetko.pracaStatus);
                this.ulohyStatusTA.Fill(this.dsVsetko.ulohyStatus);
                this.projektyTA.Fill(this.dsVsetko.projekty);
                this.ulohyTA.FillByProjektId(dsVsetko.ulohy, (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"]);
                this.praceTA.FillByUlohyId(dsVsetko.prace, (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"]);
                this.vyplatyTA.Fill(this.dsVsetko.vyplaty);
                this.projektyStavTA.Fill(this.dsVsetko.projektyStav);
                this.pozicieTA.Fill(this.dsVsetko.pozicie);
                this.zakazniciTA.Fill(this.dsVsetko.zakaznici);
                this.uzivateliaTA.Fill(this.dsVsetko.uzivatelia);
                this.uzivateliaPomTA.Fill(this.dsVsetko.uzivateliaPom);
                panelPrace(KAkcia.Zobrazit);
                panelUlohy(KAkcia.Zobrazit);
                panelUzivatelia(KAkcia.Zobrazit);
                panelVyplaty(KAkcia.Zobrazit);
                panelZakaznici(KAkcia.Zobrazit);
                panelProjekty(KAkcia.Zobrazit);

            }
            else
            {
                MessageBox.Show("Neznama akcia z prihlasovana");
            }
        }

        private void odhlasitAkcia(object sender, EventArgs e)
        {
            if (MessageBox.Show("Naozaj sa chcete odhlásiť?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                ZobrazPrihlasenie();
            }
        }
        #endregion





        #region praceHistory
        private void ZobrazPraceHistory()
        {
            frmPraceHistory frmPraceHistory = new frmPraceHistory();
            frmPraceHistory.ShowDialog();
        }
        #endregion





        #region konstruktor + frm_Load
        public frmHlavny()
        {
            InitializeComponent();
        }

        private void frmHlavny_Load(object sender, EventArgs e)
        {
            this.Text = resources.nazovProgramu;
            this.Icon = resources.b6;
            ZobrazPrihlasenie();

            frmSpeedDial = new frmSpeedDial(this);
        }
        #endregion




        #region rob
        private void rob(BindingSource bindingSource, Object tableAdapter, KAkcia akcia)
        {
            string slovoDoVypisu = "zmenený";
            try
            {
                switch (akcia)
                {
                    case KAkcia.Ulozit:
                        this.Validate();
                        bindingSource.EndEdit();
                        slovoDoVypisu = "uložený";
                        break;
                    case KAkcia.Upravit:
                        this.Validate();
                        bindingSource.EndEdit();
                        slovoDoVypisu = "upravený";
                        break;
                    case KAkcia.Vymazat:
                        bindingSource.RemoveCurrent();
                        slovoDoVypisu = "zmazaný";
                        break;
                    default:
                        throw new NotImplementedException("Neznama akcia: " + akcia.ToString());
                }
                if (tableAdapter.Equals(vyplatyTA))
                {
                    vyplatyTA.Update(dsVsetko.vyplaty);
                    vyplatyTA.Fill(dsVsetko.vyplaty);
                    panelVyplaty(KAkcia.Zobrazit);
                }
                else if (tableAdapter.Equals(praceTA))
                {
                    praceTA.Update(dsVsetko.prace);
                    praceTA.FillByUlohyId(dsVsetko.prace, (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"]);
                    panelPrace(KAkcia.Zobrazit);
                }
                else if (tableAdapter.Equals(projektyTA))
                {
                    projektyTA.Update(dsVsetko.projekty);
                    projektyTA.Fill(dsVsetko.projekty);
                    panelProjekty(KAkcia.Zobrazit);
                }
                else if (tableAdapter.Equals(zakazniciTA))
                {
                    zakazniciTA.Update(dsVsetko.zakaznici);
                    zakazniciTA.Fill(dsVsetko.zakaznici);
                    panelZakaznici(KAkcia.Zobrazit);
                }
                else if (tableAdapter.Equals(ulohyTA))
                {
                    ulohyTA.Update(dsVsetko.ulohy);
                    ulohyTA.FillByProjektId(dsVsetko.ulohy, (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"]);
                    panelUlohy(KAkcia.Zobrazit);
                }
                else if (tableAdapter.Equals(uzivateliaTA))
                {
                    uzivateliaTA.Update(dsVsetko.uzivatelia);
                    uzivateliaTA.Fill(dsVsetko.uzivatelia);
                    panelUzivatelia(KAkcia.Zobrazit);
                }
                else
                {
                    throw new NotSupportedException("Neznamy table adapter: 1 " + tableAdapter.ToString());
                }
                MessageBox.Show("Záznam bol úspešne " + slovoDoVypisu + ".", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                if (tableAdapter.Equals(vyplatyTA))
                {
                    vyplatyTA.Fill(dsVsetko.vyplaty);
                }
                else if (tableAdapter.Equals(praceTA))
                {
                    praceTA.FillByUlohyId(dsVsetko.prace, (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"]);
                }
                else if (tableAdapter.Equals(projektyTA))
                {
                    projektyTA.Fill(dsVsetko.projekty);
                }
                else if (tableAdapter.Equals(zakazniciTA))
                {
                    zakazniciTA.Fill(dsVsetko.zakaznici);
                }
                else if (tableAdapter.Equals(ulohyTA))
                {
                    ulohyTA.FillByProjektId(dsVsetko.ulohy, (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"]);
                }
                else if (tableAdapter.Equals(uzivateliaTA))
                {
                    uzivateliaTA.Fill(dsVsetko.uzivatelia);
                }
                else
                {
                    MessageBox.Show("Neznamy table adapter: 2 " + tableAdapter.ToString(), "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                if (MessageBox.Show("Chyba, záznam nebol " + slovoDoVypisu + ".\nPrajete si vidieť ďalšie informácie?", "Chyba", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                {
                    MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
        #endregion
        

















        #region zakaznici
        public void panelZakaznici(KAkcia akcia)
        {
            tabControl.SelectedTab = tabZakaznici;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaZakaznici(true);
                    tlacidlaPosuvZakaznici(false);
                    pnlZakDetail.Show();
                    pnlZakGrid.Hide();
                    DataRow newRow = this.dsVsetko.zakaznici.NewRow();
                    newRow["nazov"] = "";
                    newRow["kontaktnaOsoba"] = "";
                    newRow["email"] = "";
                    newRow["telefon"] = "";
                    newRow["poznamka"] = "";
                    this.dsVsetko.zakaznici.Rows.Add(newRow);
                    zakazniciBS.MoveLast();
                    btnZakazniciZmazatAkcia.Enabled = false;
                    btnZakazniciUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaZakaznici(true);
                    tlacidlaPosuvZakaznici(true);
                    pnlZakDetail.Show();
                    pnlZakGrid.Hide();
                    btnZakazniciZmazatAkcia.Enabled = false;
                    btnZakazniciUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaZakaznici(false);
                    tlacidlaPosuvZakaznici(false);
                    pnlZakDetail.Show();
                    pnlZakGrid.Hide();
                    btnZakazniciZmazatAkcia.Enabled = true;
                    btnZakazniciUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    zakazniciTA.Fill(dsVsetko.zakaznici);
                    pnlZakDetail.Hide();
                    pnlZakGrid.Show();
                    break;
                default:
                    break;
            }
        }

        private void tlacidlaPosuvZakaznici(bool viditelne)
        {
            btnZakazniciPrvy.Enabled = viditelne;
            btnZakazniciPredosly.Enabled = viditelne;
            btnZakazniciDalsi.Enabled = viditelne;
            btnZakazniciPosledny.Enabled = viditelne;
        }

        private void editaciaZakaznici(bool povolene)
        {
            txtZakazniciEmail.Enabled = povolene;
            txtZakazniciKontaktnaOsoba.Enabled = povolene;
            txtZakazniciNazov.Enabled = povolene;
            txtZakazniciPoznamka.Enabled = povolene;
            txtZakazniciTelefon.Enabled = povolene;
        }

        private void zakazniciUlozitAkcia(object sender, EventArgs e)
        {
            rob(zakazniciBS, zakazniciTA, KAkcia.Upravit);
        }

        private void zakazniciZmazatAkcia(object sender, EventArgs e)
        {
            rob(zakazniciBS, zakazniciTA, KAkcia.Vymazat);
        }

        private void zakazniciPridatChod(object sender, EventArgs e)
        {
            panelZakaznici(KAkcia.Pridat);
        }

        private void zakazniciUpravitChod(object sender, EventArgs e)
        {
            panelZakaznici(KAkcia.Upravit);
        }

        private void zakazniciZoznamChod(object sender, EventArgs e)
        {
            panelZakaznici(KAkcia.Zobrazit);
        }

        private void zakazniciPrvy(object sender, EventArgs e)
        {
            zakazniciBS.MoveFirst();
        }

        private void zakazniciPredosly(object sender, EventArgs e)
        {
            zakazniciBS.MovePrevious();
        }

        private void zakazniciDalsi(object sender, EventArgs e)
        {
            zakazniciBS.MoveNext();
        }

        private void zakazniciPosledny(object sender, EventArgs e)
        {
            zakazniciBS.MoveLast();
        }

        private void zakazniciZmazatChod(object sender, EventArgs e)
        {
            panelZakaznici(KAkcia.Vymazat);
        }
        #endregion














        #region uzivatelia
        private void uzivateliaPridatChod(object sender, EventArgs e)
        {
            panelUzivatelia(KAkcia.Pridat);
        }

        private void uzivateliaUpravitChod(object sender, EventArgs e)
        {
            panelUzivatelia(KAkcia.Upravit);
        }

        private void uzivateliaZmazatChod(object sender, EventArgs e)
        {
            panelUzivatelia(KAkcia.Vymazat);
        }

        private void uzivateliaZoznamChod(object sender, EventArgs e)
        {
            panelUzivatelia(KAkcia.Zobrazit);
        }

        private void uzivateliaPrvy(object sender, EventArgs e)
        {
            uzivateliaBS.MoveFirst();
        }

        private void uzivateliaPredosly(object sender, EventArgs e)
        {
            uzivateliaBS.MovePrevious();
        }

        private void uzivateliaDalsi(object sender, EventArgs e)
        {
            uzivateliaBS.MoveNext();
        }

        private void uzivateliaPosledny(object sender, EventArgs e)
        {
            uzivateliaBS.MoveLast();
        }

        private void uzivateliaUlozitAkcia(object sender, EventArgs e)
        {
            rob(uzivateliaBS, uzivateliaTA, KAkcia.Upravit);
        }

        private void uzivateliaZmazatAkcia(object sender, EventArgs e)
        {
            rob(uzivateliaBS, uzivateliaTA, KAkcia.Vymazat);
        }

        public void panelUzivatelia(KAkcia akcia)
        {
            tabControl.SelectedTab = tabUzivatelia;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaUzivatelia(true);
                    tlacidlaPosuvUzivatelia(false);
                    pnlUzivateliaDetail.Show();
                    pnlUzivateliaZoznam.Hide();
                    DataRow newRow = this.dsVsetko.uzivatelia.NewRow();
                    newRow["pozicieId"] = this.dsVsetko.pozicie[0].pozicieId;
                    newRow["menoPriezvisko"] = "";
                    newRow["mzdaNaHod"] = 0;
                    newRow["prihlasovacieMeno"] = "";
                    newRow["heslo"] = "";
                    newRow["rodneCislo"] = "";
                    newRow["cisloUctu"] = "";
                    newRow["poznamka"] = "";
                    newRow["pozicieNazov"] = this.dsVsetko.pozicie[0].nazov;
                    this.dsVsetko.uzivatelia.Rows.Add(newRow);
                    uzivateliaBS.MoveLast();
                    btnUzivateliaZmazatAkcia.Enabled = false;
                    btnUzivateliaUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaUzivatelia(true);
                    tlacidlaPosuvUzivatelia(true);
                    pnlUzivateliaDetail.Show();
                    pnlUzivateliaZoznam.Hide();
                    btnUzivateliaZmazatAkcia.Enabled = false;
                    btnUzivateliaUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaUzivatelia(false);
                    tlacidlaPosuvUzivatelia(false);
                    pnlUzivateliaDetail.Show();
                    pnlUzivateliaZoznam.Hide();
                    btnUzivateliaZmazatAkcia.Enabled = true;
                    btnUzivateliaUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    uzivateliaTA.Fill(dsVsetko.uzivatelia);
                    pnlUzivateliaDetail.Hide();
                    pnlUzivateliaZoznam.Show();
                    break;

                default:
                    break;
            }
        }

        private void tlacidlaPosuvUzivatelia(bool viditelne)
        {
            btnUzivateliaPrvy.Enabled = viditelne;
            btnUzivateliaPredosly.Enabled = viditelne;
            btnUzivateliaDalsi.Enabled = viditelne;
            btnUzivateliaPosledny.Enabled = viditelne;
        }

        private void editaciaUzivatelia(bool povolene)
        {
            textUzivateliaMenoPriezvisko.Enabled = povolene;
            textUzivateliaPrihlasovacieMeno.Enabled = povolene;
            textUzivateliaHeslo.Enabled = povolene;
            textPoznamky.Enabled = povolene;
            textUzivateliaRodneCislo.Enabled = povolene;
            textUzivateliaCisloUctu.Enabled = povolene;
            textUzivateliaMzdaNaHodinu.Enabled = povolene;
            comboPozicia.Enabled = povolene;
        }
        #endregion















        #region projekty
        private void projektyPridatChod(object sender, EventArgs e)
        {
            panelProjekty(KAkcia.Pridat);
        }

        private void projektyUpravitChod(object sender, EventArgs e)
        {
            panelProjekty(KAkcia.Upravit);
        }

        private void projektyZmazatChod(object sender, EventArgs e)
        {
            panelProjekty(KAkcia.Vymazat);
        }

        private void projektyZoznamChod(object sender, EventArgs e)
        {
            panelProjekty(KAkcia.Zobrazit);
        }

        private void projektyPrvy(object sender, EventArgs e)
        {
            projektyBS.MoveFirst();
        }

        private void projektyPredosly(object sender, EventArgs e)
        {
            projektyBS.MovePrevious();
        }

        private void projektyDalsi(object sender, EventArgs e)
        {
            projektyBS.MoveNext();
        }

        private void projektyPosledny(object sender, EventArgs e)
        {
            projektyBS.MoveLast();
        }

        private void projektyUlozitAkcia(object sender, EventArgs e)
        {
            rob(projektyBS, projektyTA, KAkcia.Upravit);
        }

        private void projektyZmazatAkcia(object sender, EventArgs e)
        {
            rob(projektyBS, projektyTA, KAkcia.Vymazat);
        }

        public void panelProjekty(KAkcia akcia)
        {
            tabControl.SelectedTab = tabProjekty;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaProjekty(true);
                    tlacidlaPosuvProjekty(false);
                    pnlProjektyDetail.Show();
                    pnlProjektyZoznam.Hide();
                    DataRow newRow = this.dsVsetko.projekty.NewRow();
                    newRow["zakazniciId"] = this.dsVsetko.zakaznici[0].zakazniciId;
                    newRow["manazerId"] = this.dsVsetko.uzivatelia[0].uzivateliaId;
                    newRow["projektyStavId"] = this.dsVsetko.projektyStav[0].projektyStavId;
                    newRow["nazov"] = "";
                    newRow["datumPridany"] = DateTime.Today;
                    newRow["datumUkonceny"] = DateTime.Today;
                    newRow["datumTermin"] = DateTime.Today;
                    newRow["uzivateliaPrihlasovacieMeno"] = this.dsVsetko.uzivatelia[0].prihlasovacieMeno;
                    newRow["projektyStavNazov"] = this.dsVsetko.projektyStav[0].nazov;
                    newRow["zakazniciNazov"] = this.dsVsetko.zakaznici[0].nazov;
                    newRow["zakazniciKontaktnaOsoba"] = this.dsVsetko.zakaznici[0].kontaktnaOsoba;

                    this.dsVsetko.projekty.Rows.Add(newRow);
                    projektyBS.MoveLast();
                    btnProjektyZmazatAkcia.Enabled = false;
                    btnProjektyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaProjekty(true);
                    tlacidlaPosuvProjekty(true);
                    pnlProjektyDetail.Show();
                    pnlProjektyZoznam.Hide();
                    btnProjektyZmazatAkcia.Enabled = false;
                    btnProjektyUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaProjekty(false);
                    tlacidlaPosuvProjekty(false);
                    pnlProjektyDetail.Show();
                    pnlProjektyZoznam.Hide();
                    btnProjektyZmazatAkcia.Enabled = true;
                    btnProjektyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    projektyTA.Fill(dsVsetko.projekty);
                    pnlProjektyDetail.Hide();
                    pnlProjektyZoznam.Show();
                    break;

                default:
                    break;
            }
        }

        private void tlacidlaPosuvProjekty(bool viditelne)
        {
            btnProjektyPrvy.Enabled = viditelne;
            btnProjektyPredosly.Enabled = viditelne;
            btnProjektyDalsi.Enabled = viditelne;
            btnProjektyPosledny.Enabled = viditelne;
        }

        private void editaciaProjekty(bool povolene)
        {
            textUzivateliaMenoPriezvisko.Enabled = povolene;
            textUzivateliaPrihlasovacieMeno.Enabled = povolene;
            textUzivateliaHeslo.Enabled = povolene;
            textPoznamky.Enabled = povolene;
            textUzivateliaRodneCislo.Enabled = povolene;
            textUzivateliaCisloUctu.Enabled = povolene;
            textUzivateliaMzdaNaHodinu.Enabled = povolene;
            comboPozicia.Enabled = povolene;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            dsVsetko.WriteXml("yuftdxytfyut.xml");
        }

        private void btnProjektyUlohyChod_Click(object sender, EventArgs e)
        {
            ulohyTA.FillByProjektId(dsVsetko.ulohy, (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"]);
            panelUlohy(KAkcia.Zobrazit);
        }
        #endregion














        #region ulohy
        private void ulohyPridatChod(object sender, EventArgs e)
        {
            if (this.dsVsetko.uzivatelia.Rows.Count == 0)
            {
                MessageBox.Show("Úlohe je nutné priradiť zamestnanca. Pridajte najprv zamestnanca.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            else if (this.dsVsetko.projekty.Rows.Count == 0)
            {
                MessageBox.Show("Úlohu je nutné priradiť projektu. Pridajte najprv projekt.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            else
            {
                panelUlohy(KAkcia.Pridat);
            }
        }

        private void ulohyUpravitChod(object sender, EventArgs e)
        {
            panelUlohy(KAkcia.Upravit);
        }

        private void ulohyZmazatChod(object sender, EventArgs e)
        {
            panelUlohy(KAkcia.Vymazat);
        }

        private void ulohyZoznamChod(object sender, EventArgs e)
        {
            panelUlohy(KAkcia.Zobrazit);
        }

        private void ulohyPrvy(object sender, EventArgs e)
        {
            ulohyBS.MoveFirst();
        }

        private void ulohyPredosly(object sender, EventArgs e)
        {
            ulohyBS.MovePrevious();
        }

        private void ulohyDalsi(object sender, EventArgs e)
        {
            ulohyBS.MoveNext();
        }

        private void ulohyPosledny(object sender, EventArgs e)
        {
            ulohyBS.MoveLast();
        }

        private void ulohyUlozitAkcia(object sender, EventArgs e)
        {
            rob(ulohyBS, ulohyTA, KAkcia.Upravit);
        }

        private void ulohyZmazatAkcia(object sender, EventArgs e)
        {
            rob(ulohyBS, ulohyTA, KAkcia.Vymazat);
        }

        public void panelUlohy(KAkcia akcia)
        {
            tabControl.SelectedTab = tabUlohy;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaUlohy(true);
                    tlacidlaPosuvUlohy(false);
                    pnlUlohyDetail.Show();
                    pnlUlohyZoznam.Hide();
                    DataRow newRow = this.dsVsetko.ulohy.NewRow();
                    newRow["vypracovatelId"] = this.dsVsetko.uzivatelia[0].uzivateliaId;
                    newRow["testerId"] = this.dsVsetko.uzivatelia[0].uzivateliaId;
                    newRow["projektyId"] = (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"];
                    newRow["ulohyStatusId"] = this.dsVsetko.ulohyStatus[0].ulohyStatusId;
                    newRow["ulohaNazov"] = "";
                    newRow["mzdaNaHod"] = 0;
                    newRow["datumPridana"] = DateTime.Today;
                    newRow["datumTermin"] = DateTime.Today;
                    newRow["datumOdovzdana"] = DateTime.Today;
                    newRow["datumSchvalena"] = DateTime.Today;
                    newRow["planHodin"] = 0;
                    newRow["projektyNazov"] = dsVsetko.projekty.Rows[projektyBS.Position]["nazov"];
                    newRow["ulohyStatusNazov"] = this.dsVsetko.ulohyStatus[0].nazov;
                    newRow["vypracovatelMenoPriezvisko"] = this.dsVsetko.uzivatelia[0].menoPriezvisko;
                    newRow["vypracovatelPrihlasovacieMeno"] = this.dsVsetko.uzivatelia[0].prihlasovacieMeno;
                    newRow["testerMenoPriezvisko"] = this.dsVsetko.uzivatelia[0].menoPriezvisko;
                    newRow["testerPrihlasovacieMeno"] = this.dsVsetko.uzivatelia[0].prihlasovacieMeno;

                    this.dsVsetko.ulohy.Rows.Add(newRow);
                    ulohyBS.MoveLast();
                    btnUlohyZmazatAkcia.Enabled = false;
                    btnUlohyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaUlohy(true);
                    tlacidlaPosuvUlohy(true);
                    pnlUlohyDetail.Show();
                    pnlUlohyZoznam.Hide();
                    btnUlohyZmazatAkcia.Enabled = false;
                    btnUlohyUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaUlohy(false);
                    tlacidlaPosuvUlohy(false);
                    pnlUlohyDetail.Show();
                    pnlUlohyZoznam.Hide();
                    btnUlohyZmazatAkcia.Enabled = true;
                    btnUlohyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    ulohyTA.FillByProjektId(dsVsetko.ulohy, (int)dsVsetko.projekty.Rows[projektyBS.Position]["projektyId"]);
                    pnlUlohyDetail.Hide();
                    pnlUlohyZoznam.Show();
                    break;

                default:
                    break;
            }
        }

        private void tlacidlaPosuvUlohy(bool viditelne)
        {
            btnUlohyPrvy.Enabled = viditelne;
            btnUlohyPredosly.Enabled = viditelne;
            btnUlohyDalsi.Enabled = viditelne;
            btnUlohyPosledny.Enabled = viditelne;
        }

        private void editaciaUlohy(bool povolene)
        {
            textUzivateliaMenoPriezvisko.Enabled = povolene;
            textUzivateliaPrihlasovacieMeno.Enabled = povolene;
            textUzivateliaHeslo.Enabled = povolene;
            textPoznamky.Enabled = povolene;
            textUzivateliaRodneCislo.Enabled = povolene;
            textUzivateliaCisloUctu.Enabled = povolene;
            textUzivateliaMzdaNaHodinu.Enabled = povolene;
            comboPozicia.Enabled = povolene;
        }

        private void btnUlohyPraceChod_Click(object sender, EventArgs e)
        {
            praceTA.FillByUlohyId(dsVsetko.prace, (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"]);
            panelPrace(KAkcia.Zobrazit);
        }

        private void btnUlohyProjektyChod_Click(object sender, EventArgs e)
        {
            panelProjekty(KAkcia.Zobrazit);
        }
        #endregion
























        #region prace
        private void pracePridatChod(object sender, EventArgs e)
        {
            if (this.dsVsetko.ulohy.Rows.Count > 0)
            {
                panelPrace(KAkcia.Pridat);
            }
            else
            {
                MessageBox.Show("Prácu je nutné pridať k zvolenej úlohe. Pridajte najprv úlohu.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void praceUpravitChod(object sender, EventArgs e)
        {
            panelPrace(KAkcia.Upravit);
        }

        private void praceZmazatChod(object sender, EventArgs e)
        {
            panelPrace(KAkcia.Vymazat);
        }

        private void praceZoznamChod(object sender, EventArgs e)
        {
            panelPrace(KAkcia.Zobrazit);
        }

        private void pracePrvy(object sender, EventArgs e)
        {
            praceBS.MoveFirst();
        }

        private void pracePredosly(object sender, EventArgs e)
        {
            praceBS.MovePrevious();
        }

        private void praceDalsi(object sender, EventArgs e)
        {
            praceBS.MoveNext();
        }

        private void pracePosledny(object sender, EventArgs e)
        {
            praceBS.MoveLast();
        }

        private void praceUlozitAkcia(object sender, EventArgs e)
        {
            rob(praceBS, praceTA, KAkcia.Upravit);
        }

        private void praceZmazatAkcia(object sender, EventArgs e)
        {
            rob(praceBS, praceTA, KAkcia.Vymazat);
        }

        public void panelPrace(KAkcia akcia)
        {
            tabControl.SelectedTab = tabPrace;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaPrace(true);
                    tlacidlaPosuvPrace(false);
                    pnlPraceDetail.Show();
                    pnlPraceZoznam.Hide();
                    DataRow newRow = this.dsVsetko.prace.NewRow();
                    newRow["ulohyId"] = (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"];
                    newRow["ulohaNazov"] = dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohaNazov"];
                    newRow["pracaStatusId"] = this.dsVsetko.pracaStatus[0].pracaStatusId;
                    newRow["pracaStatusNazov"] = this.dsVsetko.pracaStatus[0].nazov;
                    newRow["pocetHodin"] = 0;
                    newRow["datumPridana"] = DateTime.Today;
                    newRow["popis"] = "";

                    this.dsVsetko.prace.Rows.Add(newRow);
                    praceBS.MoveLast();
                    btnPraceZmazatAkcia.Enabled = false;
                    btnPraceUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaPrace(true);
                    tlacidlaPosuvPrace(true);
                    pnlPraceDetail.Show();
                    pnlPraceZoznam.Hide();
                    btnPraceZmazatAkcia.Enabled = false;
                    btnPraceUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaPrace(false);
                    tlacidlaPosuvPrace(false);
                    pnlPraceDetail.Show();
                    pnlPraceZoznam.Hide();
                    btnPraceZmazatAkcia.Enabled = true;
                    btnPraceUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    praceTA.FillByUlohyId(dsVsetko.prace, (int)dsVsetko.ulohy.Rows[ulohyBS.Position]["ulohyId"]);
                    pnlPraceDetail.Hide();
                    pnlPraceZoznam.Show();
                    break;

                default:
                    break;
            }
        }

        private void tlacidlaPosuvPrace(bool viditelne)
        {
            btnPracePrvy.Enabled = viditelne;
            btnPracePredosly.Enabled = viditelne;
            btnPraceDalsi.Enabled = viditelne;
            btnPracePosledny.Enabled = viditelne;
        }

        private void editaciaPrace(bool povolene)
        {
            //textMenoPriezvisko.Enabled = povolene;
            //textPrihlasovacieMeno.Enabled = povolene;
            //textHeslo.Enabled = povolene;
            //textPoznamky.Enabled = povolene;
            //textRodneCislo.Enabled = povolene;
            //textCisloUctu.Enabled = povolene;
            //textMzdaNaHodinu.Enabled = povolene;
            //comboPozicia.Enabled = povolene;
        }

        private void btnPraceUlohyChod_Click(object sender, EventArgs e)
        {
            panelUlohy(KAkcia.Zobrazit);
        }
        #endregion






















        #region vyplaty
        private void vyplatyPridatChod(object sender, EventArgs e)
        {
            panelVyplaty(KAkcia.Pridat);
        }

        private void vyplatyUpravitChod(object sender, EventArgs e)
        {
            panelVyplaty(KAkcia.Upravit);
        }

        private void vyplatyZmazatChod(object sender, EventArgs e)
        {
            panelVyplaty(KAkcia.Vymazat);
        }

        private void vyplatyZoznamChod(object sender, EventArgs e)
        {
            panelVyplaty(KAkcia.Zobrazit);
        }

        private void vyplatyPrvy(object sender, EventArgs e)
        {
            vyplatyBS.MoveFirst();
        }

        private void vyplatyPredosly(object sender, EventArgs e)
        {
            vyplatyBS.MovePrevious();
        }

        private void vyplatyDalsi(object sender, EventArgs e)
        {
            vyplatyBS.MoveNext();
        }

        private void vyplatyPosledny(object sender, EventArgs e)
        {
            vyplatyBS.MoveLast();
        }

        private void vyplatyUlozitAkcia(object sender, EventArgs e)
        {
            rob(vyplatyBS, vyplatyTA, KAkcia.Ulozit);
        }

        private void vyplatyZmazatAkcia(object sender, EventArgs e)
        {
            rob(vyplatyBS, vyplatyTA, KAkcia.Vymazat);
        }

        public void panelVyplaty(KAkcia akcia)
        {
            tabControl.SelectedTab = tabVyplaty;
            switch (akcia)
            {
                case KAkcia.Pridat:
                    editaciaVyplaty(true);
                    tlacidlaPosuvVyplaty(false);
                    pnlVyplatyDetail.Show();
                    pnlVyplatyZoznam.Hide();
                    DataRow newRow = this.dsVsetko.vyplaty.NewRow();
                    newRow["uzivateliaId"] = this.dsVsetko.uzivatelia[0].uzivateliaId;
                    newRow["menoPriezvisko"] = this.dsVsetko.uzivatelia[0].menoPriezvisko;
                    newRow["cisloUctu"] = this.dsVsetko.uzivatelia[0].cisloUctu;
                    newRow["datumVytvorenia"] = DateTime.Today;
                    newRow["premie"] = 0;

                    this.dsVsetko.vyplaty.Rows.Add(newRow);
                    vyplatyBS.MoveLast();
                    btnVyplatyZmazatAkcia.Enabled = false;
                    btnVyplatyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Upravit:
                    editaciaVyplaty(true);
                    tlacidlaPosuvVyplaty(true);
                    pnlVyplatyDetail.Show();
                    pnlVyplatyZoznam.Hide();
                    btnVyplatyZmazatAkcia.Enabled = false;
                    btnVyplatyUlozitAkcia.Enabled = true;
                    break;

                case KAkcia.Vymazat:
                    editaciaVyplaty(false);
                    tlacidlaPosuvVyplaty(false);
                    pnlVyplatyDetail.Show();
                    pnlVyplatyZoznam.Hide();
                    btnVyplatyZmazatAkcia.Enabled = true;
                    btnVyplatyUlozitAkcia.Enabled = false;
                    break;

                case KAkcia.Zobrazit:
                    vyplatyTA.Fill(dsVsetko.vyplaty);
                    pnlVyplatyDetail.Hide();
                    pnlVyplatyZoznam.Show();
                    break;

                default:
                    break;
            }
        }

        private void tlacidlaPosuvVyplaty(bool viditelne)
        {
            btnVyplatyPrvy.Enabled = viditelne;
            btnVyplatyPredosly.Enabled = viditelne;
            btnVyplatyDalsi.Enabled = viditelne;
            btnVyplatyPosledny.Enabled = viditelne;
        }

        private void editaciaVyplaty(bool povolene)
        {
            textUzivateliaMenoPriezvisko.Enabled = povolene;
            textUzivateliaPrihlasovacieMeno.Enabled = povolene;
            textUzivateliaHeslo.Enabled = povolene;
            textPoznamky.Enabled = povolene;
            textUzivateliaRodneCislo.Enabled = povolene;
            textUzivateliaCisloUctu.Enabled = povolene;
            textUzivateliaMzdaNaHodinu.Enabled = povolene;
            comboPozicia.Enabled = povolene;
        }
        #endregion






















        #region mainMenu
        private void koniecAkcia(object sender, EventArgs e)
        {
            this.Close();
        }

        public void akciaOdhlasit(object sender, EventArgs e)
        {
            ZobrazPrihlasenie();
        }

        private void mnuMacHistoriaPrac_Click(object sender, EventArgs e)
        {
            ZobrazPraceHistory();
        }

        private void mnuProgramStatistikyGo(object sender, EventArgs e)
        {
            frmStatistiky frmStatistiky = new frmStatistiky();
            frmStatistiky.ShowDialog();
        }

        private void speedDialToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmSpeedDial.ShowDialog();
        }

        private void koniecToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion



















        #region validacia
        public void projektyValidacia(object sender, EventArgs e)
        {
            btnProjektyUlozitAkcia.Enabled = false;
            if (Validator.EpJePrazdne(nazovTextBox, errorProvider, "Hodnota je povinná.")) { }
            else if (Validator.EpPresahujeMaxDlzku(nazovTextBox, errorProvider, 50, "Hodnota presahuje maximálnu dľžku 50 znakov.")) { }
            else
            {
                btnProjektyUlozitAkcia.Enabled = true;
            }
        }

        private void ulohyValidacia(object sender, EventArgs e)
        {
            int pocetOk = 0;
            if (!Validator.EpJeVacsiRovnyDatum(dtpUlohyTermin, errorProvider, "Dátum termín musí byť väčší alebo rovný ako dátum pridania.", dtpUlohyPridana)) { }
            else
            {
                pocetOk++;
            }

            if (!Validator.EpJeVacsiRovnyDatum(dtpUlohySchvalena, errorProvider, "Dátum schvalenia musí byť väčší alebo rovný ako dátum pridania.", dtpUlohyPridana)) { }
            else
            {
                pocetOk++;
            }

            if (!Validator.EpJeVacsiRovnyDatum(dtpUlohyOdovzdana, errorProvider, "Dátum odovzdania musí byť väčší alebo rovný ako dátum pridania.", dtpUlohyPridana)) { }
            else if (!Validator.EpJeMensiRovnyDatum(dtpUlohyOdovzdana, errorProvider, "Dátum odovzdania musí byť menší alebo rovný ako dátum schválenia.", dtpUlohySchvalena)) { }
            else
            {
                pocetOk++;
            }

            if (Validator.EpJePrazdne(txtUlohyNazov, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(txtUlohyNazov, errorProvider, 100, "Hodnota presahuje maximálnu dľžku 100 znakov.")) { }
            else if (((int)dsVsetko.ulohy.Rows[ulohyBS.Position]["vypracovatelId"]) == ((int)dsVsetko.ulohy.Rows[ulohyBS.Position]["testerId"]))
            {
                errorProvider.SetError(cbxUlohyTester, "Vypracovateľ a tester sa nemôžu zhodovať.");
                errorProvider.SetError(cbxUlohyVypracovatel, "Vypracovateľ a tester sa nemôžu zhodovať.");
            }
            else
            {
                errorProvider.SetError(cbxUlohyTester, "");
                errorProvider.SetError(cbxUlohyVypracovatel, "");
                pocetOk++;
            }

            btnUlohyUlozitAkcia.Enabled = false;
            if (pocetOk == 4)
            {
                btnUlohyUlozitAkcia.Enabled = true;
            }
        }

        private void praceValidacia(object sender, EventArgs e)
        {
            btnPraceUlozitAkcia.Enabled = !Validator.EpJePrazdne(txtPracePopis, errorProvider, "Hodnota je povinná");
        }

        private void vyplatyValidacia(object sender, EventArgs e)
        {
            btnVyplatyUlozitAkcia.Enabled = true;
        }

        private void zakazniciValidacia(object sender, EventArgs e)
        {
            btnZakazniciUlozitAkcia.Enabled = false;
            if (Validator.EpJePrazdne(txtZakazniciNazov, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(txtZakazniciNazov, errorProvider, 50, "Hodnota presahuje maximálnu dľžku 50 znakov.")) { }
            else if (Validator.EpJePrazdne(txtZakazniciKontaktnaOsoba, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(txtZakazniciKontaktnaOsoba, errorProvider, 50, "Hodnota presahuje maximálnu dľžku 50 znakov.")) { }
            else if (Validator.EpJePrazdne(txtZakazniciEmail, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(txtZakazniciEmail, errorProvider, 255, "Hodnota presahuje maximálnu dľžku 255 znakov.")) { }
            else if (Validator.EpJePrazdne(txtZakazniciTelefon, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(txtZakazniciTelefon, errorProvider, 50, "Hodnota presahuje maximálnu dľžku 50 znakov.")) { }
            else
            {
                btnZakazniciUlozitAkcia.Enabled = true;
            }
        }

        private void uzivateliaValidacia(object sender, EventArgs e)
        {
            btnUzivateliaUlozitAkcia.Enabled = false;
            if (Validator.EpJePrazdne(textUzivateliaMenoPriezvisko, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(textUzivateliaMenoPriezvisko, errorProvider, 60, "Hodnota presahuje maximálnu dľžku 60 znakov.")) { }
            else if (Validator.EpJePrazdne(textUzivateliaRodneCislo, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(textUzivateliaRodneCislo, errorProvider, 11, "Hodnota presahuje maximálnu dľžku 11 znakov.")) { }
            else if (Validator.EpJePrazdne(textUzivateliaPrihlasovacieMeno, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(textUzivateliaPrihlasovacieMeno, errorProvider, 40, "Hodnota presahuje maximálnu dľžku 40 znakov.")) { }
            else if (Validator.EpJePrazdne(textUzivateliaCisloUctu, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(textUzivateliaCisloUctu, errorProvider, 20, "Hodnota presahuje maximálnu dľžku 20 znakov.")) { }
            else if (Validator.EpJePrazdne(textUzivateliaHeslo, errorProvider, "Hodnota je povinná")) { }
            else if (Validator.EpPresahujeMaxDlzku(textUzivateliaHeslo, errorProvider, 40, "Hodnota presahuje maximálnu dľžku 40 znakov.")) { }
            else
            {
                btnUzivateliaUlozitAkcia.Enabled = true;
            }
        }
        #endregion


















        #region tlacenie
        private void btnUzivateliaTlacit_Click(object sender, EventArgs e)
        {
            crUzivatelia crUzivatelia = new crUzivatelia();
            crUzivatelia.SetDataSource(dsVsetko);
            frmReport frmReport = new frmReport();
            frmReport.reportViewer.ReportSource = crUzivatelia;
            frmReport.reportViewer.Show();
            frmReport.ShowDialog();
        }

        private void btnUlohyTlacit_Click(object sender, EventArgs e)
        {
            crUlohy crUlohy = new crUlohy();
            crUlohy.SetDataSource(dsVsetko);
            frmReport frmReport = new frmReport();
            frmReport.reportViewer.ReportSource = crUlohy;
            frmReport.reportViewer.Show();
            frmReport.ShowDialog();
        }

        private void btnZakazniciTlacit_Click(object sender, EventArgs e)
        {
            crpZakaznici crZakaznici = new crpZakaznici();
            crZakaznici.SetDataSource(dsVsetko);
            frmReport frmReport = new frmReport();
            frmReport.reportViewer.ReportSource = crZakaznici;
            frmReport.reportViewer.Show();
            frmReport.ShowDialog();
        }
        #endregion





        








        

        #region export XLS
        public void export_datagridview_to_excel(DataGridView dgv)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "MS Excel (*.xls)|*.xls|" + "All Files|";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                String excel_file = sfd.FileName;
                int cols;
                //open file
                StreamWriter wr = new StreamWriter(excel_file);
                //determine the number of columns and write columns to file
                cols = dgv.Columns.Count;
                for (int i = 0; i < cols; i++)
                //Name.ToString().ToUpper()
                {
                    wr.Write(dgv.Columns[i].HeaderText + "\t");
                }
                wr.WriteLine();
                //write rows to excel file
                for (int i = 0; i < (dgv.Rows.Count - 1); i++)
                {
                    for (int j = 0; j < cols; j++)
                    {
                        if (dgv.Rows[i].Cells[j].Value != null)
                            wr.Write(dgv.Rows[i].Cells[j].Value + "\t");
                        else
                        {
                            wr.Write("\t");
                        }
                    }
                    wr.WriteLine();
                }

                //close file
                wr.Close();
                MessageBox.Show("Uložené.");
            }
        }

        private void btnUlohyExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvUlohy);
        }

        private void btnUzivateliaExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvUzivatelia);
        }

        private void btnProjektyExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvProjekty);
        }

        private void btnPraceExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvPrace);
        }

        private void btnVyplatyExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvVyplaty);
        }

        private void btnZakazniciExport_Click(object sender, EventArgs e)
        {
            export_datagridview_to_excel(dgvZakaznici);
        }
        #endregion

















        #region XML
        private void toXml(DataTable paDatatable)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "XML Dokument (*.xml)|*.xml|" + "All Files|";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                paDatatable.WriteXml(sfd.FileName, true);
            }
        }

        private void btnZakazniciToXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.zakaznici);
        }

        private void btnProjektyDoXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.projekty);
        }

        private void btnUlohyDoXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.ulohy);
        }

        private void btnPraceDoXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.prace);
        }

        private void btnVyplatyDoXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.vyplaty);
        }

        private void btnUzivateliaDoXml_Click(object sender, EventArgs e)
        {
            toXml(dsVsetko.uzivatelia);
        }

        private void fromXml(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "XML Dokument (*.xml)|*.xml|" + "All Files|";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    dsVsetko.ReadXml(ofd.FileName);
                }
                catch (Exception ex)
                {
                    if (MessageBox.Show("Nastala chyba pri impore dát z XML súboru.\nPrajete si vidieť ďalšie informácie?", "Chyba", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                    {
                        MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                tableAdapterManager.UpdateAll(dsVsetko);
            }
        }
        #endregion

        private void mnuProjektyNajstPracu_Click(object sender, EventArgs e)
        {
            frmVyhladavaniePrac frmVyhladavaniePrac = new frmVyhladavaniePrac();
            frmVyhladavaniePrac.ShowDialog();
        }
    }
}